Contents
  1. 1. 如何生成GC日志文件
    1. 1.1. 注意事项:
  2. 2. MAT eclipse 插件的安装和使用
    1. 2.1. 常用功能
  3. 3. GC Esay
  4. 4. VisualVM

参考blog:
http://www.ityouknow.com/java/2017/02/22/jvm-tool.html

如何生成GC日志文件

注意事项:

  • dump文件是 即时的内存快照信息,而log才是准确的所有的gc信息
  • 文件名是dump的居然不被myeclipse识别为heap文件,而改成bin文件就认识了
  1. -verbose:gc -Xloggc:/usr/local/jvmlog/gc.log
    -XX:+PrintGCTimeStamps -XX:+PrintGCDetails

  2. ./jmap -dump:format=b,file=t/usr/local/tmp/test.bin pid
    生成dump文件

  3. 通过JDK自带的 VisualVM工具,直接application 下选择 heap dump就可以了

  4. 通过配置server 参数,在OOM的时候生产内存快照
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR/java.hprof

其他相关参数调优:
https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html

MAT eclipse 插件的安装和使用

先通过 myeclipse 的 help –> install from category –> 输入 mat搜索 安装好
重启之后,直接file –> open file 软件会自动判断是 heap 分析文件的。

常用功能

主要是通过图形化界面,画出即时dump文件里面堆的信息情况,分析完还会自动在dump同路径下生产zip的分析 html页面文件,666

  • Histogram 列出内存中的对象,对象的个数以及大小
  • Dominator Tree:列出最大的对象以及其依赖存活的Object (大小是以Retained Heap为标准排序的)
  • Top Consumers : 通过图形列出最大的object
  • Leak Suspects :内存泄漏分析
  • Top Components: 列出大于总堆数的百分之1的报表。

GC Esay

http://gceasy.io
快捷的分析 log日志

VisualVM

jdk bin下自带的图形化界面

Contents
  1. 1. 如何生成GC日志文件
    1. 1.1. 注意事项:
  2. 2. MAT eclipse 插件的安装和使用
    1. 2.1. 常用功能
  3. 3. GC Esay
  4. 4. VisualVM